import {message} from 'antd';
import {formatMessage} from './intl';
import {saleOrderPriceTerms} from '../Enum';

export const newOrUpdateOrderValidator = (data, details) => {
    //增加判断必填字段
    const emptyErrors = [];
    if(!data || !data.dealerId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.dealerId',
            defaultMessage: '总代'
        }));
    if(!data || !data.brandId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.brandId',
            defaultMessage: '品牌'
        }));
    if(!data || !data.orderType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.orderType',
            defaultMessage: '订单类型'
        }));
    if(!data || !data.paymentType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.paymentType',
            defaultMessage: '付款方式'
        }));
    if(!data || !data.salesOrderPriceTerms)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.salesOrderPriceTerms',
            defaultMessage: '价格条款'
        }));
    if(data && data.salesOrderPriceTerms === saleOrderPriceTerms.FCA && !data.account)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.account',
            defaultMessage: '到付账号'
        }));
    if(!data || !data.destinationPort)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.destinationPort',
            defaultMessage: '目的港口'
        }));
    if(!data || !data.shippingPortId)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.shippingPortId',
            defaultMessage: '发运港口'
        }));
    if(!data || !data.transportType)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.transportType',
            defaultMessage: '运输方式'
        }));
    if(!data || !data.vinYear)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.vinYear',
            defaultMessage: 'VIN码年份'
        }));
    if(!data || !data.deliveryDate)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.deliveryDate',
            defaultMessage: '需求交期'
        }));
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    if(data && data.remark && data.remark.length > 100) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.empty.remark',
            defaultMessage: '备注长度不能超过100个字'
        })}`);
        return false;
    }
    if(details.length <= 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.detailRequired',
            defaultMessage: '清单不能为空'
        })}`);
        return false;
    }
    const emptyDetailErrors = [];
    // if(details.some(d => !d.piCode))
    //     emptyDetailErrors.push(formatMessage({
    //         id: 'validator.empty.piCode',
    //         defaultMessage: 'PI编号'
    //     }));
    if(details.some(d => !d.productCode))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.productCode',
            defaultMessage: '产品编号'
        }));
    if(details.some(d => !d.quantity))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.quantity',
            defaultMessage: '数量'
        }));
    if(details.some(d => !d.price))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.price',
            defaultMessage: '单价'
        }));
    if(details.some(d => !d.totalPrice))
        emptyDetailErrors.push(formatMessage({
            id: 'validator.empty.totalPrice',
            defaultMessage: '总价'
        }));
    if(emptyDetailErrors.length > 0) {
        message.warning(`${emptyDetailErrors.join('，')}${formatMessage({
            id: 'validator.detail.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    return true;
};

export const rejectValidator = data => {
    //增加判断必填字段
    const emptyErrors = [];
    if((!data || !data.approveComment) && !data.isFundIntercourse)
        emptyErrors.push(formatMessage({
            id: 'validator.empty.approveComment',
            defaultMessage: '审核意见'
        }));
    if(emptyErrors.length > 0) {
        message.warning(`${emptyErrors.join('，')}${formatMessage({
            id: 'validator.required',
            defaultMessage: '必填!'
        })}`);
        return false;
    }
    return true;
};
